package main

import (
	"changeme/core"
	"context"
	"fmt"
	"log"

	"github.com/wailsapp/wails/v2/pkg/runtime"
)

// App struct
type App struct {
	ctx     context.Context
	Watcher *core.FileWatcher
}

// NewApp creates a new App application struct
func NewApp() *App {
	return &App{}
}

// startup is called when the app starts. The context is saved
// so we can call the runtime methods
func (a *App) startup(ctx context.Context) {
	a.ctx = ctx
	a.Watcher.SetContext(&ctx)
	// a.Watcher.Init(&ctx)
}

// Greet returns a greeting for the given name
func (a *App) Greet(name string) string {
	return fmt.Sprintf("Hello %s, It's show time!", name)
}

// 选择目录
func (a *App) SelectDirectory() string {
	path, err := runtime.OpenDirectoryDialog(a.ctx, runtime.OpenDialogOptions{
		Title:                "选择监听目录",
		ShowHiddenFiles:      true,
		CanCreateDirectories: true,
	})

	if err != nil {
		log.Println("目录选择失败", err)
		return ""
	}
	return path
}
